/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package compilador.pojo;

/**
 *
 * @author H
 */
public class MensagemErro extends Mensagem {

    //MENSAGENS DE ERRO.
    public static final int ERRO_LEXICO = 1;
    public static final int ERRO_SINTATICO = 2;
    public static final int ERRO_SEMANTICO = 3;
    public static final int ERRO_GERACAO_CODIGO = 4;
    public static final int ERRO_TABELA_SIMBOLO = 5;
    
    
    
    
    private boolean erro;
    private int linha;

    /**
     *
     * @param tipoErro - Tipo do erro: 1 - léxico, 2 - sintático, 3 - semântico,
     * 4 - geração de código
     * @param linha - Linha do erro
     * @param mensagem - Mensagem de erro.
     */
    public MensagemErro(int tipoErro, int linha, String mensagem) {

        switch (tipoErro) {
            case 1:
                super.setTextoPadrao("[ERRO LÉXICO] ");
                break;
            case 2:
                super.setTextoPadrao("[ERRO SINTÁTICO] ");
                break;
            case 3:
                super.setTextoPadrao("[ERRO SEMÂNTICO] ");
                break;
            case 4:
                super.setTextoPadrao("[ERRO DE GERAÇÃO DE CÓDIGO] ");
                break;
            case 5:
                super.setTextoPadrao("[TABELA DE SIMBOLOS] ");
                break;
            default:
                super.setTextoPadrao("==ERRO DESCONHECIDO== ");
                break;
        }

        this.erro = true;
        this.linha = linha;
        this.setMensagem(mensagem);

    }

    @Override
    public String getMensagem() {
        return super.getMensagem();
    }

    @Override
    public final void setMensagem(String mensagem) {
        super.setMensagem(super.getTextoPadrao() + mensagem);
    }

    public boolean isErro() {
        return erro;
    }

    public void setErro(boolean erro) {
        this.erro = erro;
    }

    public int getLinha() {
        return linha;
    }

    public void setLinha(int linha) {
        this.linha = linha;
    }
}
